load("@semmle_code//:dist.bzl", "dist")
load("@rules_pkg//pkg:mappings.bzl", "pkg_files")
load("@semmle_code//buildutils-internal:zipmerge.bzl", "zipmerge")

package(default_visibility = ["//visibility:public"])

alias(
    name = "dbscheme",
    actual = "//javascript/ql/lib:dbscheme",
)

alias(
    name = "dbscheme-stats",
    actual = "//javascript/ql/lib:dbscheme-stats",
)

pkg_files(
    name = "dbscheme-group",
    srcs = [
        ":dbscheme",
        ":dbscheme-stats",
    ],
    strip_prefix = None,
)

dist(
    name = "javascript-extractor-pack",
    srcs = [
        ":dbscheme-group",
        "//javascript/downgrades",
        "//javascript/externs",
        "//javascript/extractor:tools-extractor",
        "@semmle_code//language-packs/javascript:resources",
    ],
    prefix = "javascript",
)

# We have to zipmerge in the typescript parser wrapper, as it's generated by a genrule
# and we don't know a list of its output files. Therefore, we sidestep the
# rules_pkg tooling here, and generate the zip for the language pack manually.
zipmerge(
    name = "javascript",
    srcs = [
        ":javascript-extractor-pack.zip",
        "//javascript/extractor/lib/typescript",
    ],
    out = "javascript.zip",
)
